package management.system.model.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import management.system.model.bean.MenuDTO;
import management.system.model.bean.PerfilDTO;
import management.system.model.interfaces.MenuDAO;
import management.system.utils.MySqlDBConn;

public class MySqlMenuDAO implements MenuDAO{
	
	

	public Connection getConnection(){
		MySqlDBConn mysql = new MySqlDBConn();
		return mysql.getConnection();
	}

	@Override
	public ArrayList<MenuDTO> listarMenu(Integer UsuarioID) throws SQLException {
		// TODO Auto-generated method stub
		ArrayList<MenuDTO> lstMenu = new ArrayList<MenuDTO>();
		MenuDTO dto = null;
		String sql = null;
		
		sql = "SELECT m.descripcion, m.url, p.descripcion as grupo FROM Menu m, Grupo p, "
				+ "MenuGrupo d, Usuario u Where m.Menu_ID=d.Menu_ID and "
				+ "p.Grupo_ID=d.Grupo_ID and u.Grupo_ID=p.Grupo_ID and u.Usuario_ID=?;";
		
		System.out.println("sQL:"+sql);
		Connection conn = null;
		ResultSet rs = null;
		
		try {
			conn = getConnection();
			PreparedStatement pstm = conn.prepareStatement(sql);
			pstm.setInt(1, UsuarioID);
			rs = pstm.executeQuery();
			
			while(rs.next()){
				dto = new MenuDTO();
				dto.setDescripcion(rs.getString("descripcion"));
				dto.setUrl(rs.getString("url"));
				dto.setDescripcionGrupo(rs.getString(""));
				lstMenu.add(dto);
			}
		} catch (SQLException e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		return lstMenu;
	}
}
